package sanrenxing.dayEnd.backRepertoryTotal.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import sanrenxing.dayEnd.backRepertoryTotal.domain.CashStock;
import sanrenxing.dayEnd.backRepertoryTotal.domain.CashStockTwo;
import sanrenxing.dayEnd.backRepertoryTotal.service.CashStockBiz;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 功能：现金库存的控制器类
 * 作者：赵思睿
 * 日期：2021/3/16 0016-10:46
 * 版本：1.0
 */
@RestController
@RequestMapping("/cashStockcrud")
public class CashStockController {
    //定义现金库存的业务层接口
    @Autowired
    private CashStockBiz cashStockBiz;

    /**
     * 分页条件查询
     * @param page 页数
     * @param limit 每页行数
     * @param cashStock 现金库存对象
     * @return 现金库存对象集合
     */
    @GetMapping("/cashStock")
    public Map<String,Object> selectCashStock(int page, int limit, CashStock cashStock){
        //执行多条件分页查询
        List<CashStockTwo> cashStockList=cashStockBiz.selectAll(cashStock,limit,(page-1)*limit);
        //多条件查询表中总记录数
        int totalRows=cashStockBiz.count(cashStock);

        //定义映射对象集合
        Map<String,Object> map=new HashMap<>();
        //在映射集合中添加状态码
        map.put("code",0);
        //在映射集合中添加响应信息字符串
        map.put("msg","");
        //在映射集合中添加总行数的数据对
        map.put("count",totalRows);
        //在映射集合中添加现金库存集合对象
        map.put("data",cashStockList);
        //返回映射集合对象
        return map;
    }

    /**
     * 添加现金库存信息
     * @param cashStock 现金库存对象
     * @return 1：添加成功；0：添加失败
     */
    @PostMapping("/cashStock")
    public String add(@RequestBody CashStock cashStock){
        //定义一个影响行数变量
        int rows=0;
        //调用现金库存业务层的添加方法
        rows=cashStockBiz.add(cashStock);
        //判断影响行数，如果影响行数大于0
        if(rows>0){
            //返回添加成功
            return "add success";
        }else{
            //返回添加失败
            return "add failure";
        }
    }

    /**
     * 根据现金库存编号删除现金库存编号
     * @param cashId 现金库存编号
     * @return 1：删除成功；0：删除失败
     */
    @DeleteMapping("/cashStock/{cashId}")
    public String delete(@PathVariable String cashId){
        //定义一个影响行数
        int rows=0;
        //调用现金库存业务层的删除方法
        rows=cashStockBiz.delete(cashId);
        //判断影响行数，如果影响行数大于0
        if(rows>0){
            //返回删除成功
            return "delete success";
        }else{
            //返回删除失败
            return "delete failure";
        }
    }
}
